module memory(seg,sel,cin,out,clk_IR);

input clk_IR; //时钟脉冲
input[15:0] cin;      //从存储器mem读入的指令
input[7:0] out;        //指令的地址
output reg[7:0] seg; //数码管显示
output reg[2:0] sel;   //数码管位选
reg [3:0] data;

//数码管输出
always @(posedge clk_IR)
begin
	if(sel>=3'd8)
		sel<=0;
	sel<=sel+1;
	case(sel)
		3'd6: data<=out[7:4]; 
		3'd7: data<=out[3:0]; 
		3'd0: data<=0;
		3'd1: data<=0;
		3'd2: data<=cin[15:12]; 
		3'd3: data<=cin[11:8]; 
		3'd4: data<=cin[7:4];
		3'd5: data<=cin[3:0];
	endcase
	case(data)
			4'h0: seg<=8'h3F;
			4'h1: seg<=8'h06;
			4'h2: seg<=8'h5B;
			4'h3: seg<=8'h4F;
			4'h4: seg<=8'h66;
			4'h5: seg<=8'h6D;
			4'h6: seg<=8'h7D;
			4'h7: seg<=8'h07;
			4'h8: seg<=8'h7F;
			4'h9: seg<=8'h6F;
			4'hA: seg<=8'h77;
			4'hB: seg<=8'h7C;
			4'hC: seg<=8'h39;
			4'hD: seg<=8'h5E;
			4'hE: seg<=8'h79;
			4'hF: seg<=8'h71;
			default: seg<=8'h00;
		endcase
end 

endmodule 